Директиву Import можно использоваться и без проекта на VC++. Просто саму в результате в папке Debug она сформирует THL файл. Он текстовый файл и в нем будут описания классов и интерфейсов.
// Created by Microsoft (R) C/C++ Compiler Version 12.00.8168.0 (80e16df7).
//
.....
ICTestDll : IDispatch
{
//
// Wrapper methods for error-handling
//
HRESULT MessageMi ( );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall raw_MessageMi ( ) = 0;
};
.....................
Посмотрев его Вы сможете изучить какие там есть методы. Второй файл будет иметь расширение TLI в котором будет реализация классов.
// interface ICTestDll wrapper method implementations
//
...........
inline HRESULT ICTestDll::MessageMi ( ) {
HRESULT _hr = raw_MessageMi();
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}
...........
Так вот название классов и интерфейсов, название пространства имен берется именно из этого файла который компилятор генерирует автоматически. Как видите классы объектов COM просто оборачивают IDispatch. Из этих файлов видно, что используется заголовочный файл #include "comdef.h" соответсвенно в этом заголовочном классе находятся все шаблоны и мактросы.
_COM_SMARTPTR_TYPEDEF(ICTestDll, __uuidof(ICTestDll));
описан там же который создает указатель на COM объект.